Sample Programs > Sample Codes (Programming AC Output)

Sample Codes (Visual Basic .NET)
Sample Code (Visual C++ 6.0)

Sample Programs

Sample code (Programming AC Output)

   vs = viPrintf( vi, "*RST\n");             'Resets the instrument

   vs = viPrintf( vi, ":OUTP:COUP AC\n");    'Selects AC coupling

   vs = viPrintf( vi, ":VOLT:RANG 135\n");   'Selects LOW (135V); range

 

   double dVoltMin, dVoltMax;

   vs = viPrintf( vi, ":VOLT? MIN\n");       'Queries VOLT min

   vs = viScanf( vi, "%lf", &dVoltMin);

   vs = viPrintf( vi, ":VOLT? MAX\n");       'Queries VOLT max

   vs = viScanf( vi, "%lf", &dVoltMax);

 

   double dFreqMin, dFreqMax;

   vs = viPrintf( vi, ":FREQ? MIN\n");       'Queries FREQ min

   vs = viScanf( vi, "%lf", &dFreqMin);

   vs = viPrintf( vi, ":FREQ? MAX\n");       'Queries FREQ max

   vs = viScanf( vi, "%lf", &dFreqMax);

 

   vs = viPrintf( vi, ":VOLT 110\n");        'Sets 110V

   vs = viPrintf( vi, ":FREQ 55\n");         'Sets 55Hz

   vs = viPrintf( vi, ":OUTP ON\n");         'Turns the output on

 

long lErr;

char szErr[256];

   vs = viPrintf( vi, ":SYST:ERR?\n");       'Queries instrument error

   vs = viScanf( vi, "%ld,\"%[^\"]", &lErr, szErr);

Sample code (Programming DC Output)

   vs = viPrintf( vi, "*RST\n");             'Resets the instrument

   vs = viPrintf( vi, ":OUTP:COUP DC\n");    'Selects DC coupling

   vs = viPrintf( vi, ":VOLT:RANG 135\n");   'Selects LOW (135V); range

 

   double dVoltMin, dVoltMax;

   vs = viPrintf( vi, ":VOLT:OFFS? MIN\n");       'Queries VOLT min

   vs = viScanf( vi, "%lf", &dVoltMin);

   vs = viPrintf( vi, ":VOLT:OFFS? MAX\n");       'Queries VOLT max

   vs = viScanf( vi, "%lf", &dVoltMax);

 

   vs = viPrintf( vi, ":VOLT:OFFS +40\n");   'Sets 40V

   vs = viPrintf( vi, ":OUTP ON\n");         'Turns the output on

 

   long lErr;

   char szErr[256];

   vs = viPrintf( vi, ":SYST:ERR?\n");       'Queries instrument error

   vs = viScanf( vi, "%ld,\"%[^\"]", &lErr, szErr);

Sample code (Triggering Output Changes)

   vs = viPrintf( vi, "*RST\n");             'Resets the instrument

   vs = viPrintf( vi, ":OUTP:COUP AC\n");    'Selects AC coupling

   vs = viPrintf( vi, ":VOLT:RANG 135\n");   'Selects LOW (135V); range

 

   vs = viPrintf( vi, ":VOLT 110\n");        'Sets 110V

   vs = viPrintf( vi, ":FREQ 55\n");         'Sets 55Hz

   vs = viPrintf( vi, ":OUTP ON\n");         'Turns the output on

 

   vs = viPrintf( vi, ":VOLT:MODE STEP\n");  'Selects STEP mode

   vs = viPrintf( vi, ":FREQ:MODE STEP\n");  'Selects STEP mode

 

   vs = viPrintf( vi, ":VOLT:TRIG 100\n");   'Sets 100V when triggered

   vs = viPrintf( vi, ":FREQ:TRIG 50\n");         'Sets 50Hz when triggered

 

   vs = viPrintf( vi, ":TRIG:SEQ1:SOUR BUS\n");  'Selects BUS trigger

 

   vs = viPrintf( vi, ":INIT:SEQ1\n");      'Initiates

   vs = viPrintf( vi, ":TRIG:SEQ1:IMM\n");  'Gives a trigger

 

   long lErr;

   char szErr[256];

   vs = viPrintf( vi, ":SYST:ERR?\n");       'Queries instrument error

   vs = viScanf( vi, "%ld,\"%[^\"]", &lErr, szErr);

Sample code (Easy Measurement)

      double dVoltAC;

   double dCurrAC;

   double dCurrMax;

   double dCurrMaxHold;

   double dCurrCrestFactor;

   double dPowACReal;

   double dPowACApparent;

   double dPowACReactive;

   double dPowACPF;

 

   ' Query VOLT AC

   vs = viPrintf( vi, ":MEAS:VOLT:AC?\n");

   vs = viScanf( vi, "%lf", &dVoltAC);

 

   ' Query CURR AC

   vs = viPrintf( vi, ":MEAS:CURR:AC?\n");

   vs = viScanf( vi, "%lf", &dCurrAC);

 

   ' Query CURR Max

   vs = viPrintf( vi, ":MEAS:CURR:AMPL:MAX?\n");

   vs = viScanf( vi, "%lf", &dCurrMax);

 

   ' Query CURR Max Hold

   vs = viPrintf( vi, ":MEAS:CURR:AMPL:MAX:HOLD?\n");

   vs = viScanf( vi, "%lf", &dCurrMaxHold);

 

   ' Query CURR Crest Factor

   vs = viPrintf( vi, ":MEAS:CURR:CRES?\n");

   vs = viScanf( vi, "%lf", &dCurrCrestFactor);

 

   ' Query POW AC Real

   vs = viPrintf( vi, ":MEAS:POW:AC:REAL?\n");

   vs = viScanf( vi, "%lf", &dPowACReal);

 

   ' Query POW AC Apparent

   vs = viPrintf( vi, ":MEAS:POW:AC:APP?\n");

   vs = viScanf( vi, "%lf", &dPowACApparent);

 

   ' Query POW AC Reactive

   vs = viPrintf( vi, ":MEAS:POW:AC:REAC?\n");

   vs = viScanf( vi, "%lf", &dPowACReactive);

 

   ' Query POW AC Power Factor

   vs = viPrintf( vi, ":MEAS:POW:AC:PFAC?\n");

   vs = viScanf( vi, "%lf", &dPowACPF);

Sample code (Advanced Measurement)

   double dVoltAC;

   double dCurrAC;

   double dCurrMax;

   double dCurrMaxHold;

   double dCurrCrestFactor;

   double dPowACReal;

   double dPowACApparent;

   double dPowACReactive;

   double dPowACPF;

 

   ' Set up OPC event causing SRQ generation

   vs = viPrintf( vi, "*ESE 1;*SRE 32;*CLS\n");

 

   ' Initiate a new measurement

   vs = viPrintf( vi, ":TRIG:SEQ3:SOUR IMM\n");

   vs = viPrintf( vi, ":INIT:SEQ3\n");

   vs = viPrintf( vi, "*OPC\n");

 

   ' Wait for SRQ generation

   unsigned short uStb;

do {

       vs = viReadSTB( vi, &uStb);

} while((uStb & 0x40) == 0);

 

   ' Query VOLT AC

   vs = viPrintf( vi, ":FETC:VOLT:AC?\n");

   vs = viScanf( vi, "%lf", &dVoltAC);

 

   ' Query CURR AC

   vs = viPrintf( vi, ":FETC:CURR:AC?\n");

   vs = viScanf( vi, "%lf", &dCurrAC);

 

   ' Query CURR Max

   vs = viPrintf( vi, ":FETC:CURR:AMPL:MAX?\n");

   vs = viScanf( vi, "%lf", &dCurrMax);

 

   ' Query CURR Max Hold

   vs = viPrintf( vi, ":FETC:CURR:AMPL:MAX:HOLD?\n");

   vs = viScanf( vi, "%lf", &dCurrMaxHold);

 

   ' Query CURR Crest Factor

   vs = viPrintf( vi, ":FETC:CURR:CRES?\n");

   vs = viScanf( vi, "%lf", &dCurrCrestFactor);

 

   ' Query POW AC Real

   vs = viPrintf( vi, ":FETC:POW:AC:REAL?\n");

   vs = viScanf( vi, "%lf", &dPowACReal);

 

   ' Query POW AC Apparent

   vs = viPrintf( vi, ":FETC:POW:AC:APP?\n");

   vs = viScanf( vi, "%lf", &dPowACApparent);

 

   ' Query POW AC Reactive

   vs = viPrintf( vi, ":FETC:POW:AC:REAC?\n");

   vs = viScanf( vi, "%lf", &dPowACReactive);

 

   ' Query POW AC Power Factor

   vs = viPrintf( vi, ":FETC:POW:AC:PFAC?\n");

   vs = viScanf( vi, "%lf", &dPowACPF);